Various products including hard disk drives and transmission systems utilize a read channel device to encode data, store or transmit the encoded data on a medium, retrieve the encoded data from the medium and decode and convert the information to a digital data format. Such read channel devices may include data processing circuits including encoder and decoder circuits or endecs to encode and decode data as it is stored and retrieved from a medium or transmitted through a data channel, in order to reduce the likelihood of errors in the retrieved data. It is important that the read channel devices be able to rapidly and accurately decode the original stored data patterns in retrieved or received data samples.
The encoded data may be constrained to follow one or more rules that reduce the chance of errors. For example, when storing data on a hard disk drive, it may be beneficial to avoid long runs of consecutive transitions, or long runs of 0's or 1's. It can be difficult to design endecs to encode data according to such constraints that avoid complex circuitry.